\mysection{Zusammenfassung}
\label{real:sec:zusammenfassung}
In diesem Kapitel haben wir beschrieben, wie wir unser Konzept realisiert haben.
Im ersten Abschnitt \ref{real:sec:masp} wird die \masp von uns beschrieben.
Diese ist eine Plattform, welche ein multimodales Benutzerinterface auf
verschiedenen Geräten in einer Wohnung koordiniert. In der \masp kann man die zu
verwendenden Geräte und den Kontext selber definieren. Die \masp wird an der
Technischen Universität Berlin im DAI-Labor entwickelt und dient uns als
Grundgerüst für unsere Realisierung.
\\
Im darauf folgenden Abschnitt \ref{real:sec:sichtbereich} haben wir erläutert,
wie wir das Problem des Sichtbereichs gelöst haben. Hier lag das Problem darin,
festzustellen, ob der Benutzer einen Bildschirm sehen kann und wenn ja, ob
dieser Bildschirm im zentralen oder peripheren Sichtbereich liegt. Die Lösung
wurde mit Hilfe der Vektorrechnung implementiert. Es wurden zwei Überprüfungen
angestellt. Zuerst wurde festgestellt, ob der Benutzer das Gerät sehen kann.
Wenn sich zusätzlich der Benutzer innerhalb des Ablesewinkels des Bildschirms
befindet, dann kann der Benutzer den Bildschirm sehen.
\\
Für unsere Realisierung mussten wir auf verschiedene Technologien zurückgreifen,
welche in Abschnitt \ref{real:sec:technologien} erklärt wurden. Als
Programmiersprache verwenden wir Java, weil die bisherige Implementierung eine
Java-Web-App ist. Um Daten zu persistieren wurde innerhalb der \masp der Kontext
mit Hilfe von \jaxb serialisiert. Um eine technologische Konsistenz zu erhalten,
persistieren wir die Daten unseres Benachrichtigungssystems ebenfalls mit \jaxb.
Zudem benutzen wir das JUnit-Framework um unsere Implementierung zu testen.
\\
Nachdem wir die genutzten Technologien erklärt haben, schufen wir im darauf
folgenden Abschnitt \ref{real:sec:architektur} einen Überblick über die
Architektur des Benachrichtigungssystems. Dies fängt mit dem Ablauf einer
Benachrichtigung in der \masp an. Hier wurde anhand eines Sequenzdiagramms
erklärt, wie eine Nachricht gesendet wird und welche Komponenten wann und wie
miteinander interagieren, bis es zu einer Benachrichtigung für den Benutzer
kommt. Es ist auch zu erkennen, an welcher Stelle wir unsere Berechnungen in
die \masp integrieren. Im Anschluss gaben wir eine Übersicht über die von uns
implementierten Klassen in einem UML-Klassendiagramm. Die implementierten
Klassen wurden dann im einzelnen mit ihren Methoden und Aufgaben genauer
beleuchtet.
\\
Zuletzt haben wir dann unser Vorgehen beim Testen der Implementierung
vorgestellt. Beim Testen haben wir das \masp umgangen, um etwaige
Integrationsprobleme außer Betracht lassen zu können und lediglich gegen unser
Konzept testen zu können. Da unsere Implementierung jedoch ein Kontextmodell
erwartet, haben wir solch ein Kontextmodell vor jedem Testfall angelegt. Dabei
haben wir mit Hilfe der startUp-Methode zuerst nur einen Raum und einen Benutzer
angelegt. Die Geräte wurden dann, entsprechend der für den Testfall benötigten
Situation, innerhalb des Testfalls selbst erstellt.